import java.util.*;


public class Solution8 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 判断岛屿数量
     * @param grid char字符型二维数组 
     * @return int整型
     */
    public int solve (char[][] grid) {
        // write code here
        int res = 0;
        boolean[][] dp = new boolean[grid.length][grid[0].length];
        for(int i = 0;i<grid.length;i++) {
            for(int j = 0;j<grid[0].length;j++) {
                if(!dp[i][j] && grid[i][j] == '1') {
                    res++;
                    fun(grid,i,j,dp);
                }
            }
        }
        return res;
    }
    public void fun(char[][] grid,int i,int j,boolean[][] dp) {
        if(i >= 0 && i < grid.length && j >= 0 && j < grid[0].length) {
            if(!dp[i][j] && grid[i][j] == '1') {
                dp[i][j] = true;
                fun(grid,i+1,j,dp);
                fun(grid,i-1,j,dp);
                fun(grid,i,j-1,dp);
                fun(grid,i,j+1,dp);
            }
        }
        
    }
}